from redis import StrictRedis
import logging

# 准备配置类
class Config(object):
    """app配置类"""
    DEBUG = True

    # 配置MySql：指定数据库位置
    SQLALCHEMY_DATABASE_URI = "mysql://root:limiao2706@192.168.5.148:3306/technews_website"
    # 禁用追踪mysql：因为mysql的性能差，如果再去追踪mysql的所有的修改，会再次浪费性能
    SQLALCHEMY_TRACK_MODIFICATIONS = False

    # 配置redis数据库
    REDIS_HOST = "192.168.5.148"
    REDIS_PORT = 6379

    # 准备CSRF密钥
    SECRET_KEY = "fiojfiojasinvv89n6u72398456t723cmp4n957uq3480mv6u"

    # 配置Session：将flask的session数据引导到redis
    SESSION_TYPE = "redis"  # 从源代码中得知这么配置
    SESSION_REDIS = StrictRedis(host=REDIS_HOST, port=REDIS_PORT)
    # 使用签名，将session明文转成密文
    SESSION_USE_SIGNER = True
    # 设置session有效期:一天，一秒为单位
    PERMANENT_SESSION_LIFETIME = 60 * 60 * 24


class DevelopmentConfig(Config):
    """
    开发环境配置类
    如果开发环境的配置类和父类一直，可以直接pass
    """
    DEBUG = True

    # 开发环境的日志等级为调试模式
    LOGGING_LEVEL = logging.DEBUG


class ProductionConfig(Config):
    """
    生产环境配置类
    实际开发中需要额外配置生产环境下的数据库和其他的信息
    """
    DEBUG = False

    # 生产环境的日志等级
    LOGGING_LEVEL = logging.WARNING


configs = {
    'dev': DevelopmentConfig,
    "prod": ProductionConfig
}
